package com.reflect.demo;

import java.lang.reflect.Field;

/**
 * Created by thinkjoy on 2017/7/6.
 * 获取成员变量信息
 */
public class demo3 {
    public static void main(String[] args) {
        try {
            Class c=Class.forName("com.reflect.demo.Pserson");
//            获取单个成员变量
            Field field=c.getDeclaredField("msg");//因为msg变量是private的，所以不能用getField方法
            Object o=c.newInstance();
            field.setAccessible(true);//设置是否允许访问，因为该变量是private的，所以要手动设置允许访问，如果msg是public的就不需要这行了
            Object msg=field.get(o);
            System.out.println(msg);

            //获取所有成员变量
            Field[] fields=c.getDeclaredFields();
            for (Field f : fields) {
                System.out.println(f.getName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
